package org.collector.data.controllerdata;

public class SiteOfProxyParam implements Cloneable{
	private volatile boolean lastSucess;
	private volatile long lastErrorTime;
	private volatile long lastSucessTime;
	private volatile int totalSucessTimes;
	private volatile int totalFailTimes;
	public SiteOfProxyParam(){
		lastSucess = true;
		lastErrorTime = System.currentTimeMillis();
		lastSucessTime = System.currentTimeMillis();
		totalSucessTimes = 0;
		totalFailTimes = 0;
	}
	protected void SumStatistics(){
		lastErrorTime = 0;
		lastSucessTime = 0;
		totalSucessTimes = 0;
		totalFailTimes = 0;
	}
	public boolean isLastSucess() {
		return lastSucess;
	}
	public void setLastSucess(boolean lastSucess) {
		this.lastSucess = lastSucess;
	}
	public long getLastErrorTime() {
		return lastErrorTime;
	}
	public long updateLastErrorTime() {
		lastSucess = false;
		return lastErrorTime = System.currentTimeMillis();
	}
	public long getLastSucessTime() {
		return lastSucessTime;
	}
	public long updateLastSucessTime() {
		lastSucess = true;
		return lastSucessTime = System.currentTimeMillis();
	}
	public int getTotalSucessTimes() {
		return totalSucessTimes;
	}
	public int increaseTotalSucessTimes(){
		return ++totalSucessTimes;
	}
	public int getTotalFailTimes() {
		return totalFailTimes;
	}
	public int increaseTotalFailTimes(){
		return ++totalFailTimes;
	}
	public void copyTo(SiteOfProxyParam param){
		// TODO Auto-generated method stub
		param.lastErrorTime = this.lastErrorTime;
		param.lastSucess = this.lastSucess;
		param.lastSucessTime = this.lastSucessTime;
		param.totalSucessTimes = this.totalSucessTimes;
		param.totalFailTimes = this.totalFailTimes;
	}
	protected void addSiteOfProxyParam(SiteOfProxyParam parm){
		lastErrorTime += System.currentTimeMillis() - parm.lastErrorTime + 1;
		lastSucessTime += System.currentTimeMillis() - parm.lastSucessTime + 1;
		totalSucessTimes += parm.totalSucessTimes + 1;
		totalFailTimes += parm.totalFailTimes + 1;
	}
}
